An insulin pump is a fluid infusion device for delivering insulin to people who suffer from diabetes. The pump, which is worn by the user and eliminates the need for multiple daily insulin injections, closely imitates a normally functioning pancreas by releasing hundreds of small doses of insulin each day into the body through an infusion set to regulate blood glucose levels. The rate of delivery of these small doses (i.e., the basal rate) varies from user to user. Indeed, even for a particular user, the basal rate varies throughout the day, and depends upon a variety of factors such as the user's internal clock, metabolism, physical health, and level of stress and exercise.
A basal rate profile consists of one or more basal rates defined to cover the 24 hours of the day (e.g., 24 hourly basal rates). Many users use different basal rate profiles for different circumstances. For example, one basal rate profile may be used for weekdays, another profile (i.e., with different hourly basal rates) for weekends, and another profile for vacation days. These different basal rate profiles are designed to accommodate the expected differences in the user's background insulin needs resulting from variations in the user's sleep patterns, levels of exercise and stress, health condition, menstrual cycle status, etc. during such periods. Pumps also deliver (either automatically or when activated by the user) bolus doses of insulin (in addition to the basal rate) before meals or snacks to compensate for caloric intake.
As the amount and rate of insulin delivery (both basal and bolus) must be tailored to the individual needs of the user, modern pumps are programmable. Some pumps are capable of communicating with a separate computing device, and are compatible with programming software applications that may be executed on the computing device. The programming software permits an operator, such as the user or a health care provider, to customize the settings of the various parameters that affect the pump's operation. These parameters are included in a configuration file that is executed by the pump, and include hourly basal rates, maximum hourly basal rates, bolus dose settings, communication settings, battery settings, and many others. For example, using programming software, a user may upload a configuration file from the user's pump, modify the settings for certain parameters to change the operation of the pump, and save the modified configuration file to the pump. Alternatively, a health care provider responsible for programming the pumps of multiple patients may select an initial generalized configuration file stored in a source location such as a pump or memory location of a computing device as a starting point for programming the patients' pumps. Many of the parameter settings of the initial configuration file (e.g., battery type, language, etc.) may be suitable for all of the pumps to be programmed. Other settings (e.g., hourly basal rates, bolus dose settings, etc.) may be unique to each patient's pump. After the health care provider selects the initial configuration file, he or she may change only the settings needed to customize the pump's operation for the current patient, then save the customized configuration file to the patient's pump without having to define a setting for every pump parameter.
As suggested by the foregoing, insulin pumps perform relatively complex functions, which directly affect the health of the user. For at least these reasons, programming software is generally designed to simplify, to the extent possible, the processes for programming pump functions while simultaneously incorporating safety measures to prevent operators from inadvertently programming a pump with parameter settings that may harm the user or adversely affect the operation of the pump.
As mentioned above, pump programming software can be viewed as communicating with one of two memory locations—pump memories and memory locations on computing devices. Information can be read from either location or written to either location. In general, the most comprehensive set of information either read from or written to memory by pump programming software is the configuration file described above. The above-mentioned parameter settings can be grouped into general configuration data and insulin delivery data. General configuration data includes the settings for parameters such as language choice, volume, backlight duration, and other parameters that do not directly affect the timing and amount of insulin delivery. Insulin delivery data includes the settings for parameters such as hourly basal rate, maximum hourly basal rate, total daily basal dose, temporary basal rate increment and duration, maximum bolus dose, bolus dose increment, and other parameters relating directly to insulin delivery. One common sub-set of insulin delivery data is the basal rate profile referred to above. Each profile includes one or more basal rates defined to cover the 24 hours of the day (e.g., 24 hourly basal rates), a maximum hourly basal rate value that functions as the upper limit on the degree to which the hourly basal rates may be adjusted by an operator, and a daily basal insulin total value that reflects the sum of the basal insulin delivered by the profile. As indicated above, users typically use a plurality of different basal rate profiles depending upon their anticipated condition/activities for the day (i.e., weekday, weekend, vacation, illness, etc.). Accordingly, a typical configuration file includes a set of basal rate profiles for selection by the user.
In at least one sense, the more surgical or selective the communications with a pump or file the better. In other words, it is desirable to read or write the least comprehensive set of information needed to implement the desired change in pump operation. If changes are to be made to both the general configuration data and the insulin delivery data, it may be desirable to communicate the entire configuration file. If changes are to be made to a configuration file that affect all of the profiles in a set of basal rate profiles, but do not affect the general configuration data, then it may be desirable to communicate only the set of basal rate profiles. Finally, if changes are to be made to a configuration file that only affect a single profile of the set of basal rate profiles, then it may be desirable to communicate only the affected basal rate profile. Moreover, in the course of making changes to pump configuration files, it is desirable to require the operator to carefully consider whether the changes selected are exactly what the operator intended, especially changes that may adversely affect the health of the user.